package org.slf4j.impl;
import org.slf4j.*;

import com.db.jschool.logging.Level;

/**
 * @author ArNi
 *
 */
public class LoggerAdapter implements Logger {

	private final com.db.jschool.logging.Logger logger;
	
	LoggerAdapter(com.db.jschool.logging.Logger logger) {
		this.logger = logger;
	}
	
	@Override
	public void debug(String arg0) {
		logger.log(Level.DEBUG, arg0);
	}
	
	@Override
	public void debug(String arg0, Object arg1) {
		logger.log(Level.DEBUG, arg0, arg1);		
	}
	
	@Override
	public void debug(String arg0, Object... arg1) {
		logger.log(Level.DEBUG, arg0, arg1);
	}
	
	@Override
	public void info(String arg0) {
		logger.log(Level.INFO, arg0);		
	}

	@Override
	public void info(String arg0, Object arg1) {
		logger.log(Level.INFO, arg0, arg1);
	}
	
	@Override
	public void info(String arg0, Object... arg1) {
		logger.log(Level.INFO, arg0, arg1);
		
	}	
	
	@Override
	public void error(String arg0) {
		logger.log(Level.ERROR, arg0);
		
	}
	
	@Override
	public void error(String arg0, Object arg1) {
		logger.log(Level.ERROR, arg0, arg1);
		
	}
	
	@Override
	public void error(String arg0, Object... arg1) {
		logger.log(Level.ERROR, arg0, arg1);
	}
	
	@Override
	public boolean isDebugEnabled() {
		return logger.isLevelEnabled(Level.DEBUG);
	}
	
	@Override
	public boolean isErrorEnabled() {
		return logger.isLevelEnabled(Level.ERROR);
	}
	
	@Override
	public boolean isInfoEnabled() {
		return logger.isLevelEnabled(Level.INFO);
	}
	
	@Override
	public String getName() {
		return this.logger.getName();
	}
	
	/************************************************
	/** Don't need to be implemented
	************************************************/

	@Override
	public void debug(String arg0, Throwable arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void debug(Marker arg0, String arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void debug(String arg0, Object arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void debug(Marker arg0, String arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void debug(Marker arg0, String arg1, Object... arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void debug(Marker arg0, String arg1, Throwable arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void debug(Marker arg0, String arg1, Object arg2, Object arg3) {
		throw new UnsupportedOperationException();
		
	}

	
	
	@Override
	public void error(String arg0, Throwable arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void error(Marker arg0, String arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void error(String arg0, Object arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void error(Marker arg0, String arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void error(Marker arg0, String arg1, Object... arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void error(Marker arg0, String arg1, Throwable arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void error(Marker arg0, String arg1, Object arg2, Object arg3) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void info(String arg0, Throwable arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void info(Marker arg0, String arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void info(String arg0, Object arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void info(Marker arg0, String arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void info(Marker arg0, String arg1, Object... arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void info(Marker arg0, String arg1, Throwable arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void info(Marker arg0, String arg1, Object arg2, Object arg3) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public boolean isDebugEnabled(Marker arg0) {
		throw new UnsupportedOperationException();
	}
	
	@Override
	public boolean isErrorEnabled(Marker arg0) {
		throw new UnsupportedOperationException();
	}

	@Override
	public boolean isInfoEnabled(Marker arg0) {
		throw new UnsupportedOperationException();
	}

	@Override
	public boolean isTraceEnabled() {
		throw new UnsupportedOperationException();
	}

	@Override
	public boolean isTraceEnabled(Marker arg0) {
		throw new UnsupportedOperationException();
	}

	@Override
	public boolean isWarnEnabled() {
		throw new UnsupportedOperationException();
	}

	@Override
	public boolean isWarnEnabled(Marker arg0) {
		throw new UnsupportedOperationException();
	}

	@Override
	public void trace(String arg0) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(String arg0, Object arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(String arg0, Object... arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(String arg0, Throwable arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(Marker arg0, String arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(String arg0, Object arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(Marker arg0, String arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(Marker arg0, String arg1, Object... arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(Marker arg0, String arg1, Throwable arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void trace(Marker arg0, String arg1, Object arg2, Object arg3) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(String arg0) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(String arg0, Object arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(String arg0, Object... arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(String arg0, Throwable arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(Marker arg0, String arg1) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(String arg0, Object arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(Marker arg0, String arg1, Object arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(Marker arg0, String arg1, Object... arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(Marker arg0, String arg1, Throwable arg2) {
		throw new UnsupportedOperationException();
		
	}

	@Override
	public void warn(Marker arg0, String arg1, Object arg2, Object arg3) {
		throw new UnsupportedOperationException();
		
	}

}
